package com.naiterui.ehp.bs.doctor.service.user;

import java.io.IOException;

import com.naiterui.ehp.bp.support.exception.BusinessException;
import com.naiterui.ehp.bs.doctor.vo.DrRecordInfoVO;
import com.naiterui.ehp.bs.doctor.vo.LicenseNewParam;
import com.naiterui.ehp.bs.doctor.vo.LicenseParam;
import com.naiterui.ehp.bs.doctor.vo.RecordHospitalVO;
import com.naiterui.ehp.bs.doctor.vo.RecordNewParamVO;
import com.naiterui.ehp.bs.doctor.vo.RecordParamVO;

/**
 * 医生备案相关业务逻辑处理
 *
 * @author Amber
 * @since 1.0.0
 */
public interface IDoctorRecordService {

    /**
     * 获取医生备案医院信息
     * IDoctorRecordService.getDoctorRecordHospital()
     *
     * @param doctorId 医生id
     *
     * @return
     *
     * @throws BusinessException 医生不存、医生未备案
     * @Author Amber
     * @Date 2017年7月31日
     * @since 1.0.0
     */
    RecordHospitalVO getDoctorRecordHospital(long doctorId) throws BusinessException;

    /**
     * 根据备案医院ID获取备案医院
     * IDoctorRecordService.getDoctorRecordHospital()
     *
     * @param id 备案医院ID
     *
     * @return
     *
     * @Author Amber
     * @Date 2017年7月31日
     * @since 1.0.0
     */
    RecordHospitalVO getRecordHospitalById(int id);

    /**
     * 根据医生ID获取医生备案信息
     *
     * @param doctorId 医生ID
     *
     * @return 备案信息
     *
     * @throws BusinessException
     */
    DrRecordInfoVO getRecord(long doctorId) throws BusinessException;


    /**
     * 备案资质上传
     *
     * @param recordParam param
     */
    String uploadRecord(RecordParamVO recordParam, LicenseParam licenseParam) throws BusinessException, IOException;

    /**
     * 新备案资质上传
     *
     * @param recordParam
     *            param
     */
    void uploadRecordNew(RecordNewParamVO recordParam, LicenseNewParam licenseParam)
        throws BusinessException, IOException;
}
